Systems and methods for crowd-sourced game strategy

ABSTRACT

Various embodiments provide systems and methods that collect data regarding game strategy decisions by human players during video game, and utilize the collected data to either adjust or replace behaviors of computer players and/or suggest game strategies to human players during video game sessions. The game strategy decisions may be harvested from human-vs-human and human-vs-computer video game sessions. The data may be harvested from online-connected video game sessions, which may be hosted over an online video game network. Depending on the embodiment, the harvested data can include information regarding game strategies used by players during the video game sessions, the game contexts in which the game strategies were respectively used, and the results achieved by the respective use of the game strategies. Systems and methods described herein may facilitate a computer player having behavior that is (at least partially) “crowd-sourced” based on game strategies used by online-connected video game sessions.

INCORPORATION BY REFERENCE TO ANY PRIORITY APPLICATIONS

Any and all applications for which a foreign or domestic priority claimis identified in the Application Data Sheet as filed with the presentapplication are hereby incorporated by reference under 37 CFR 1.57.

BACKGROUND

1. Technical Field

The present invention(s) generally relate to gameplay and, moreparticularly, relate to systems and methods for crowdsourcing gamestrategy and for utilizing crowd-sourced game strategy in video games.

2. Description of Related Art

Multi-player video games are often configured to include one or morecomputer-based video game players (“computer players” or “AI players”)against which one or more human video game players (“human players”) canplay. Traditionally, computer players are included to facilitate single(human) player mode in the multi-player video game (e.g., used as asubstitute for another human player), or to enhance the gamingexperience of human players with opponents of varying difficulty.Computer players are generally pre-programmed to mimic the game play ofa human opponent of a predetermined skill level (e.g., novice, average,or expert).

With respect to video games involving selection and use of gamestrategies during gameplay (e.g., plays called in sports video games,such as a baseball video game), the computer player usually selects anduses game strategies based on pre-programmed behavior and rules. Withrespect to a football video game, an example of selecting and using agame strategy can include a (human or computer) player selecting adefensive play for a goal-line game situation or making a playersubstitutions to implement an aggressive running attack. With respect toa baseball video game, an example of selecting and using a game strategycan include a (human or computer) player shifting the outfield for aleft-handed batter or intentionally walking a known-power hitter.

Though the pre-programmed behavior and rules of the computer player maybe periodically updated, the behavior of the computer player isgenerally static and does not evolve over time, as would the behavior ofa human player.

SUMMARY

Various embodiments provide systems and methods that harvests dataregarding game strategy decisions by human players during video gamesessions (e.g., millions of online connected video game sessions), andutilizes the harvested data to either adjust or replace behaviors ofcomputer players and/or suggest game strategies to human players duringvideo game sessions. The game strategy decisions may be harvested fromhuman-vs.-human and human-vs.-computer video game sessions. The data maybe harvested from online-connected video game sessions, which may behosted over an online video game network. Depending on the embodiment,the harvested data can include information regarding game strategiesused by (human or computer) players during the video game sessions, thegame contexts in which the game strategies were respectively used, andthe results achieved by the respective use of the game strategies.Systems and methods described herein may facilitate a computer playerhaving behavior that is (at least partially) “crowd informed” or“crowd-sourced” based on game strategies used by online-connected videogame sessions, which can number in hundreds of thousands or millions.The data regarding game strategies can be harvested for a particularvideo game title or for a set of video game titles.

According to some embodiments, systems and methods (e.g., at a server)receive first data from a first client device, where the first datarelates to a first game strategy used by a first game player in a firstgame context of a first video game session (e.g., hosted over an onlinegame network), and the first video game session is between the firstgame player and at least a second game player. The first video gamesession may involve a video game being played between the first andsecond game players. The game context can provide, for example, thecurrent parameters of the video game (e.g., title and version of thevideo game, current settings of the video game), the current situationof the video game (hereafter, game situation) (e.g., current state ofgameplay, identity of teams playing if applicable, current quarter ofthe game if applicable, current score, time left on the clock, etc.),information regarding game players playing in the video game (e.g., arethey human or computer players, player skill levels, player onlinerating, etc.), and the like. For some embodiments, the first game playeris at the first client device, the second game player is at a differentclient device, and the first video game session is established over anetwork connection between the first client device and the differentclient device.

Depending on the embodiment, the video game may be a sports video gameand the first game context may comprise a state of the sports game at aspecific time. For example, the video game may be a football video gameand the first game context comprises a current offensive team, a currentdefensive team, a current score, a current game quarter, time left inthe current game quarter, a current down, current yards to completion,current line of scrimmage, one or more players on the field, currentposition of one or more players, current weather, current location, orcurrent time of day. Where the video game is a football video game, thegame strategies involved may relate to football-related playcalls (e.g.,a call for an offensive, defensive, pass-related, run-related, specialteams, kickoff, on-side kick, or punt return play). Depending on theembodiment, the video game may be a role-playing game (RPG), a real-timestrategy (RTS) game, a simulation, a first person shooter (FPS) game, oran adventure game.

The systems or methods may update a game strategy dataset based on thefirst data, where the first data at least includes an identity of thefirst game strategy and an association between the first game contextand the first game strategy, the game strategy dataset including a setof one or more previous game strategies used in a set of one or moreprevious game contexts (e.g., in previous video game sessions). Thefirst data may further include a set of game results achieved during thefirst video game session based on use of the first game strategy.

The systems or methods may identify in the game strategy dataset a setof one or more relevant game strategies based on a set of one or moregame strategy criteria. In some embodiment, the use of the one or moregame strategy criteria permits the filtering of the game strategies inthe game strategy dataset (e.g., filter based on results achieved in thevideo game, or the video game players who used the game strategies)before such game strategies are provided to a client device for use assuggested game strategies. Depending on the embodiment, the set of oneor more game strategy criteria may relate to a result achieved duringpast use of a given game strategy, past use by a set of one or morevideo game players (e.g., players having a certain skill level or havinga particular online ranking), when or how often a given game strategywas used. The systems or methods may analyze game strategies in the gamestrategy dataset, and may identify in the game strategy dataset a set ofone or more relevant game strategies based on a set of one or more gamestrategy criteria and the analysis results.

The systems or methods may provide a second client device with seconddata regarding the set of one or more relevant game strategies. Thesecond client device may be configured to use the second data to providea set of one or more relevant game strategies for use in a second gamecontext of a second video game session (e.g., hosted over an online gamenetwork) involving the same video game as the first video game session.The second data may be provided to the second client device in advanceof the second video game session beginning between the third game playerand the fourth game player. Additionally, the second data may at leastinclude a set of one or more identities of the relevant game strategiesand a set of game contexts associated with the relevant game strategies.

The second video game session may be between a third game player and atleast a fourth game player. In some embodiments, the third game playeris at the second client device, the fourth game player is at a differentclient device, and the second video game session is established over anetwork connection between the second client device and the differentclient device.

The second client device may be further configured to identify the setof one or more suggested game strategies in the set of one or morerelevant game strategies based on a second game context of the secondvideo game session, and provide the set of one or more suggested gamestrategies to the third game player for use in the second game context.In some embodiments, the set of one or more suggested game strategiesare those game strategies, in the set of one or more relevant gamestrategies, having an associated game context that is at least similarto the second game context.

In some embodiments, the third game player is a computer video gameplayer, and the third game player may automatically use at least onegame strategy, in the set of one or more suggested game strategies, inthe second game context.

In some embodiments, the third game player is a human video game player,and the second client device may provide the set of one or more relevantgame strategies for use in the second video game session by suggestingat least one game strategy, in the set of one or more suggested gamestrategies, to the third game player as an available game strategy foruse in the second game context.

According to some embodiments, systems and methods (e.g., at a clientdevice) receive, from a server, first data regarding a set of one ormore relevant game strategies identified in a game strategy datasetbased on a set of one or more game strategy criteria. The game strategydataset may include including a set of one or more previous gamestrategies used in a set of previous game contexts. The set of one ormore relevant game strategies may be associated with a video game, andmay be identified (e.g., at the server) based on a set of one or moregame strategy criteria, such as those described herein. The systems andmethods may identify a set of one or more suggested game strategies, inthe set of one or more relevant game strategies, based on the first dataand on a current game context of a video game session (e.g., at a clientdevice) between a first game player and at least a second game player.In some embodiments, the video game session involves the same video gameas the video game with which the set of one or more relevant gamestrategies are associated. The systems and methods may provide the setof one or more suggested game strategies for use by the first gameplayer in the current game context, the first game player being a humangame player. Additionally, the systems and methods may provide the setof one or more suggested game strategies for use by the first gameplayer in the current game context, the first game player being acomputer game player, the third game player automatically using at leastone game strategy from the set of one or more suggested game strategies.

According to some embodiments, systems and methods (e.g., at a server)receive, from a first client device, first data regarding a first gamestrategy used, by a first game player, in a first game context of afirst video game session between the first game player and a second gameplayer, the first video game session involving a video game. The systemsand methods may update a game strategy dataset based on the first data,the first data including an identity of the first game strategy and anassociation between the first game context and the first game strategy,the game strategy dataset including a set of one or more previous gamestrategies used in a previous game context of a given video gamesession. The systems and methods may receive, from a second clientdevice, second data regarding a second game context of a second videogame session between a third game player and a fourth game player, thesecond video game session involving the video game. The systems andmethods may identify a set of one or more suggested game strategies fromthe game strategy dataset based on the second data. The systems andmethods may provide the second client device with third data regardingthe set of one or more suggested game strategies, the second clientdevice being configured to use the third data to provide the set of oneor more suggested game strategies for use by the third game player inthe second game context, the third game player being a human gameplayer. Additionally, the systems and methods may provide the secondclient device with third data regarding the set of one or more suggestedgame strategies, the second client device being configured to use thethird data to provide the set of one or more suggested game strategiesfor use by the third game player in the second game context, the thirdgame player being a computer game player that automatically uses atleast one game strategy from the set of one or more suggested gamestrategies.

Various embodiments provide for a computer program product comprisingcomputer instruction codes configured to cause the computer system toperform various operations described herein.

Other features and aspects of various embodiments will become apparentfrom the following detailed description, taken in conjunction with theaccompanying drawings, which illustrate, by way of example, the featuresof such embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

Various embodiments are described in detail with reference to thefollowing figures. The drawings are provided for purposes ofillustration only and merely depict some embodiments. These drawingsshall not be considered limiting of the breadth, scope, or applicabilityof embodiments.

FIG. 1 is a block diagram illustrating an example environment utilizinga game strategy system in accordance with various embodiments.

FIG. 2 is a block diagram of a game strategy client module in accordancewith some embodiments of the invention.

FIG. 3 is a block diagram of a game strategy system in accordance withsome embodiments of the invention.

FIG. 4 is a flowchart illustrating an example method for game strategiesin accordance with some embodiments of the invention.

FIG. 5 is a flowchart illustrating an example method for game strategiesin accordance with some embodiments of the invention.

FIG. 6 is a screenshot of an example user interface for accessingplaycalls in a video game in accordance with some embodiments of thepresent invention.

FIG. 7 is a screenshot of an example user interface for providingsuggested playcalls in a video game in accordance with some embodimentsof the present invention.

FIG. 8 is a block diagram of an exemplary digital device.

DETAILED DESCRIPTION OF EMBODIMENTS

Various embodiments provide for systems and methods that provide “crowdinformed”/“crowd-sourced” game strategy suggestions to human video gameplayers (hereafter, also referred to as “human players”) or computervideo game players (hereafter, also referred to as “computer players” or“AI players”) participating in a video game session. As used herein,“game strategy” will be understood to include any form of strategyutilized in a video game, and may differ between different video gametitles or video game types. Additionally, as used herein, a video gamesession will be understood to involve a video game (e.g., a specificvideo game title) and a human player playing against at least one otherhuman player, against at least one computer player, or both. Systems andmethods described herein may be implemented with respect to a sportsvideo game, such as soccer, (American) football, baseball, hockey,tennis, or golf, and may be further implemented with respect to anon-sports video game, such as a role-playing game (RPG) (e.g., MMORPG),a real-time strategy (RTS) game, a simulation, a first person shooter(FPS) game, or an adventure game. The video game may be, in whole or inpart, a turn-based game in which players take turns reviewing and thenselecting from a set of available game strategies to execute duringgameplay.

As an example, systems and methods may be implemented with a footballvideo game in which a human player has an opportunity to select anoffensive/defensive play (e.g., between hikes) and control a player onthe field after a game strategy is selected. Such systems or methods mayprovide one or more playcall suggestions to a human player when thehuman player is provided with an opportunity to select a playcall foruse during a video game session. Additionally, such systems or methodsmay provide one or more playcall suggestions to a computer playerconfigured to automatically select and utilize one or more playcallsfrom the playcall suggestions during a video game session. The play callsuggestion may include, for example, an effective defensive play for aspecified offensive group (e.g., 1RB-1TE-3WR) or an effective offensiveplay for a specific game situation (e.g., 9 minutes remaining in 4thquarter and the offense is 3rd and long).

In some embodiments, systems or methods generate game strategysuggestions using game context information provided through (human orcomputer) player telemetry data generated by a video game. Suchtelemetry data can include game context information regarding gamesituations and gameplay by players in particular game contexts. For avideo game session (involving a specific video game), the telemetry datacan describe the current game context experienced by the two or moreplayers participating in the video game session, and can furtherdescribe one or more game strategies utilized by the players in the gamecontext. For instance, for the current game context in a football videogame, the telemetry data can describe the current game situation, whichmay include the current down, distance to go (for a completion), currentabsolute yard line, the identity of an offensive play utilized, identifyof a defensive play utilized, results of an offensive or defensive playutilized (e.g., net yards gained by an offensive play utilized), and thelike. Using the telemetry data and the like as sources for game contextinformation, systems and methods can sample and save (e.g., into a gamestrategy dataset): game strategies utilized during game play betweenplayers (e.g., save at a database maintained by a server), the gamecontexts in which such game strategies are utilized, and resultsassociated with such game strategies. Eventually, the sampled and saveddata can be used to provide one or more suggested game strategies duringfuture game sessions, based on current game contexts (e.g., current gamesituations) of those future game sessions. Certain embodiments areimplemented with respect to an online video game network or service,such as one offered by Electronic Arts®, that may be capable of samplingand saving game strategies utilized by a plurality of video gamesessions communicatively coupled to the online video gamenetwork/service. Such an online video game network or service may be onethat facilitates head-to-head video game play between two or more remotehuman players (e.g., over the Internet), which may be located atdifferent video game consoles. An online video game network/service maypermit certain embodiments to sample and save 500,000 or more gamestrategies, and their respective results, each day from game playbetween players (e.g., over a video game network), thereby utilizing thegame strategy decisions of the “crowd” to drive the game strategysuggestions provided to human or computer players.

The sampled and saved game strategies can be analyzed (e.g., todetermine the effectiveness of the sampled and saved game strategies)and can provide a set of one or more relevant game strategies (e.g., anlist of playcalls ordered according to effectiveness) from which a setof one or more suggested game strategies can be identified for use in aparticular game context of a video game session. For some embodiments,sampled and saved game strategies harvested from past video gamesessions (e.g., via an online video game network) are analyzed (e.g., ata server), and a set of one or more relevant game strategies isidentified (e.g., identify game strategies used by players of a certainrank or skill level, relevant to a particular video game title, or thatachieved particular results) based on the analysis. Thereafter, the setof one or more relevant game strategies may be saved to a database orfile (e.g., JSON file) for future use in video game sessions as acrowd-source for game strategies (e.g., online video gamecommunity-source) from which a set of one or more suggested gamestrategy can be provided to players. The set of one or more relevantgame strategies may comprise, for example, a list of suggested gamestrategies ordered according to game results achieved based on theirrespective use (e.g., by game players) in past video game sessions. Thefile can eventually be provided (e.g., from a server) to a client devicethat is hosting a human player for a video game session. The set of oneor more relevant game strategies may be sent to the client device inadvance of or near the beginning of a video game session. Once the videogame session has commenced, the client device can filter the set of oneor more relevant game strategies, according to the current game contextin the video game session (e.g., current game situation), to identify aset of one or more suggested game strategies, which can then be providedfor selection by a human player (e.g., display top ranked playcallsuggestions next to list of possible playcalls available for playerselection), or automatically utilized by a computer player (againstwhich the human player is currently playing). The manner in which theset of one or more relevant game strategies at the client device (e.g.,in the file) are filtered can depend on a number of factors, includingthe resources of the client device, the skill level of the playersinvolved (e.g., human player's skill level or computer player'sdifficulty level), various video game settings, and the preferences ofparticipating human players.

FIG. 1 is a block diagram illustrating an example environment 100utilizing a game strategy system in accordance with various embodiments.As shown in FIG. 1, the example environment 100 can comprise clientdevices 102-1 through 102-N (hereafter, collectively referred to as“client devices 102”), an online video game network 106, a game strategysystem 108, and a computer network 104 communicatively coupling togethereach of the client devices 102, the online video game network 106, andthe game strategy system 108. It will be understood that for someembodiments, the components or the arrangement of components may differfrom what is depicted in FIG. 1. In accordance with some embodiments,the computer network 104 may be implemented or facilitated using one ormore local or wide-area communications networks, such as the Internet,WiFi networks, WiMax networks, private networks, public networks, andthe like.

Each of the client devices 102, the online video game network 106, andthe game strategy system 108 may be implemented using one or moredigital devices, which may be similar to the digital devices discussedlater with respect to FIG. 8. For example, one or more of the clientdevices 102 may be any form of computing device, such as a video gameconsole, capable of executing a video game, presenting a video game userinterface through a display coupled to the computing device, receivinguser input from a video game player (e.g., entered through a gamecontroller coupled to the computing device), and communicating withvarious entities in the example environment 100 through the computernetwork 104. For instance, through the computer network 104, the clientdevice 102-1 can request and subsequently receive data regarding a setof game strategies from the game strategy system 108. For someembodiments, such a set of game strategies enables the client device102-1 (or like) to provide a set of one or more suggested gamestrategies to a human game player or computer game player, at the clientdevice 102-1, during a video game session for use in a particular gamecontext.

One or more of the client devices 102 may include a video game console,a portable gaming console, a mobile phone, a tablet computing device, alaptop, a desktop computer, personal digital assistant, a thin client, aset-top box, a portable multi-media player, or any other type of networkaccessible user device known to those of skill in the art. Further, oneor more of the online video game network 106 and game strategy system108 may comprise of one or more servers, which may be operating on orimplemented using one or more cloud-based resources (e.g.,System-as-a-Service [SaaS], Platform-as-a-Service [PaaS], orInfrastructure-as-a-Service [IaaS]). Depending on the embodiment, avideo game session can involve one or more video game players at one ofthe client devices 102 and can further involve one or more video gameplayers at another of the client devices 102. As described herein, agiven video game player may be human game player or computer gameplayer. Additionally, a copy of the video game may be executing at oneor more of the client devices 102 during the video game session.Further, a copy of the video game may be executing at (e.g., hosted on)a server, such as the online video game network 106.

According to some embodiments, one or more of the client devices 102 iscommunicatively couple to the game strategy system 108, and may do so byway of the online video game network 106. Through such a coupling, theone or more of the client devices 102 can provide, and the game strategysystem 108 can receive, and subsequently store, data regarding gamestrategies used by one or more video game players, at the one or more ofthe client devices 102, during a video game session involving a videogame. Additionally, through such a coupling, the one or more of theclient devices 102 may request, and subsequently receive, a set of oneor more relevant game strategies for use, at the one or more clientdevices 102, as a set of one or more suggested game strategies.Depending on the embodiment, the set of one or more suggested gamestrategies may be provided to a human game player (e.g., at the clientdevice 102-1), for review, selection, and use within a game context of avideo game session. The set of one or more suggested game strategies maybe provided to a computer game player (e.g., operating at the clientdevice 102-1) for analysis, automatic selection, and use (e.g., againsta human player at the client device 102-1) within a game context of avideo game session.

According to some embodiments, the one or more of the client devices 102is communicatively coupled to the game strategy system 108, and suchcoupling may be by way of the online video game network 106. Throughsuch a coupling, the game strategy system 108 may receive, andsubsequently store, data from the one or more client devices 102regarding game strategy used by a human game player at the one or moreof the client device 102 during a video game session. Additionally,through such a coupling, the one or more client devices 102 can request,and subsequently receive, data regarding a set of one or more relevantgame strategies that can be used at the one or more client devices 102as suggested game strategies during video game session. Depending on theembodiments, the suggested game strategies may be provided to a humangame player at the one of the client devices 102, who may review,select, and use one of the suggested game strategies in a game contextduring a video game session. Depending on the embodiments, the suggestedgame strategies may be provided to a computer game player operating atthe one of the client devices 102, who may review, automatic selection,and use one of the suggested game strategies (e.g., against a human gameplayer at the one of the client device 102) in a game context during avideo game session.

As shown in FIG. 1, the client device 102-1 comprises a video game 110that includes a game strategy client module 112 and a computer playermodule 114. Those skilled in the art will appreciate that for someembodiments, either the game strategy client module 112 or the computerplayer module 114 may be separate from the video game 110. The videogame 110 may represent a copy of video game software that relates tospecific video game title, that executes on the client device 102-1, andthat is configured to present a user with an user interface of the videogame 110 (i.e., video game user interface) through a display coupled tothe client device 102-1. The client device 102-1 may utilize the videogame user interface to facilitate interaction between a human gameplayer at the client device 102-1 and the video game 110, which mayinclude the review, selection, and use of game strategies suggested tothe human game player.

The game strategy client module 112 may be configured to facilitateproviding game strategies, used at the client device 102-1 by one ormore human players, to the game strategy system 108. The game strategyclient module 112 may be configured to facilitate providing suggestedgame strategies to computer or human game players at the client device102-1. Those skilled in the art will appreciate that the game strategyclient module 112 may be implemented as part of the video game 110 (asshown) and provide one or more suggested game strategies to the videogame 110, or may be implemented as a separate module, which may provideone or more suggested game strategies to the video game 110 and one ormore other video games. Depending on the embodiment, the game strategyclient module 112 may receive game player preferences from one or morehuman game players at the client device 102-1 and provide game suggestedgame strategies in accordance with those preferences. The game strategyclient module 112 may monitor a current game context during a video gamesession involving the video game 110, and may utilize the current gamecontext to provide suggested game strategies to a computer or human gameplayer.

According to some embodiments, the game strategy system 108 may receivedata regarding game strategy usage from the client device 102-1 asfollows. The game strategy system 108 may receive, and the game strategyclient module 112 may provide the game strategy system 108 with, firstdata relating to a set of one or more game strategies used by a firsthuman game player at the client device 102-1. The set of one or moregame strategies may be used in a first game context of a first videogame session (e.g., hosted over the online video game network 106)between the first human game player and at least one second video gameplayer. The second video game player may be a computer game playeroperating the client device 102-1, another computing device (e.g., theonline video game network 106), or another one of the client devices102. Additionally, the second video game player may be a human gameplayer playing at the client device 102-1 with the first human gameplayer, or at another one of the client devices 102. The first videogame session may involve a specific video game being played between thefirst human game player and the at least one second game player. Forsome embodiments, the copy of the video game 110 at the client device102-1 facilitates the first human game players participation in thefirst video game session, and may further facilitate participation ofthe at least one second game player when the second game player isanother human game player at the client device 102-1 participating withthe first human player or when the second game player is a computer gameplayer implemented via the computer player module 114. Those skilled inthe art will appreciate that additional copies of the specific videogame or other software related to the specific video game may berequired (e.g., at individual the client devices 102 or on the onlinevideo game network 106) to facilitate the first video game sessionbetween the client device 102-1 and video game players at other clientdevices 102. As described herein, the first video game session may beestablished over a network connection between the client device 102-1and one or more of the other client devices 102, and may further involvethe online video game network 106.

As described herein, the first game context can provide the currentparameters of the video game, such as title and version of the videogame 110 or the current settings of the video game 110, which caninclude the difficulty level of in-video game environment and the skilllevel of any computer game opponents. The first game context can providethe current game situation in the video game 110, which may describe thecurrent state of gameplay and describe the one or more of teams playingwhere applicable (e.g., football, baseball or soccer video game),identify the current quarter in the game where applicable, current scorewhere applicable, time spent or time left in the game where applicable,and the like. The first game context can also provide informationregarding video game players participating in the video game, suchwhether they are human or computer game players, their player skilllevels, their player online rating, and the like.

Depending on the embodiment, the video game 110 may be a sports videogame and the first game context may comprise the current game situationin the sports game at a particular time. For example, where the videogame 110 is a football video game, and the first game context comprisesa current offensive team, a current defensive team, a current score, acurrent game quarter, time left in the current game quarter, a currentdown, current yards to completion, current line of scrimmage, one ormore players on the field, current position of one or more players,current weather, current location, or current time of day. Additionally,where the video game 110 is a football video game, the game strategiesinvolved may relate to football-related playcalls (e.g., a call for anoffensive, defensive, pass-related, run-related, special teams, kickoff,on-side kick, or punt return play). Those skilled in the art willappreciate that the video game 110 may be non-sport game, such as arole-playing game (RPG), a real-time strategy (RTS) game, a simulation,a first person shooter (FPS) game, or an adventure game, and that thegame strategies involved may differ between different types of videogames or different video game titles.

Subsequent to receiving first data from the game strategy client module112, the game strategy system 108 may update a game strategy dataset(e.g., stored at the game strategy system 108) based on the first data.The first data may at least include an identity of the first gamestrategy (e.g., name or a unique identifier) and an association betweenthe first game strategy and the first game context in which the firstgame strategy was utilized by the first human game player. The gamestrategy dataset may be maintained by the game strategy system 108, andmay include a set of one or more previous game strategies used in a setof one or more previous game contexts (e.g., in previous video gamesessions involving two or more of the client devices 102). The firstdata may further include a set of game results achieved by the firsthuman game player during the first video game session based on use ofthe first game strategy.

The game strategy system 108 may identify in the game strategy dataset aset of one or more relevant game strategies based on a set of one ormore game strategy criteria. In some embodiment, the use of the one ormore game strategy criteria permits the filtering of the game strategiesin the game strategy dataset (e.g., filter based on results achieved inthe video game, or the video game players who used the game strategies)before such game strategies are provided to a client device for use assuggested game strategies. In doing so, the client devices 102 can beprovided with a dataset smaller than the game strategy datasetmaintained by the game strategy system 108. This not only saves on theamount of data that needs to be transferred by the game strategy system108 to each of the client devices 102 (e.g., at the start of or inadvance of a new video game session), but can reduces the amount of timeneeded by the client devices 102 (e.g., the game strategy client module112) to analyze the current game context, identify a set of suggestedgame strategies, and provide that set to one or more of the video gameplayers.

Depending on the embodiment, the set of one or more game strategycriteria may relate to a result achieved during past use of a given gamestrategy (e.g., to determine the effectiveness of using the given gamestrategy, maybe in a specific game context), past use by a set of one ormore video game players (e.g., video game players having a certain skilllevel or having a particular online ranking), when or how often a givengame strategy was used. The game strategy system 108 may analyze gamestrategies in the game strategy dataset, and may identify in the gamestrategy dataset a set of one or more relevant game strategies based ona set of one or more game strategy criteria and the analysis results.

Thereafter, the game strategy system 108 may provide the client device102-2 with second data regarding the set of one or more relevant gamestrategies, and may do so before or at the commencement of a new secondvideo game session by the client device 102-2 between two or more videogame player, such as a third game player and a fourth game player, atleast one of which is a human game player. The client device 102-2 maycomprise its own game strategy client module, which may facilitate thereception of the second data from the game strategy system 108. The setof one or more relevant game strategies may include those gamestrategies that are preferred for suggestion to video game players atthe client device 102-2.

The client device 102-2 may be configured to use the second data toprovide a set of one or more suggested game strategies for use in asecond game context of a second video game session (e.g., hosted over anonline game network) involving the same video game as the first videogame session. The set of suggested game strategies may be smaller thanthe set of one or more relevant game strategies provided to the clientdevice 102-2 via the second data. As noted herein, the second data maybe provided to the second client device in advance of the second videogame session beginning between the third game player and the fourth gameplayer. To provide the set of one or more relevant game strategies tothe client device 102-2, the second data may at least include a set ofone or more identities of the relevant game strategies and a set of gamecontexts associated with the relevant game strategies. Depending on theembodiment, the second client device 102-2 may identify the set of oneor more suggested game strategies, in the set of one or more relevantgame strategies, based on a second game context of the second video gamesession. The client device 102-2 may further provide the set of one ormore suggested game strategies to one of the third game player, thefourth game player, or both, for use in the second game context. Whereboth the third game player and the fourth game player are provided witha set of one or more suggested game strategies, the set of one or moresuggested game strategies for the third game player may be differentfrom the set of one or more suggested game strategies for the fourthgame player. Accordingly, for some embodiments, the process ofidentifying the set of one or more suggested game strategies for thethird game player is independent of the process of identifying the setof one or more suggested game strategies for the fourth game player. Insome embodiments, the set of one or more suggested game strategies arethose game strategies, in the set of one or more relevant gamestrategies, having an associated game context that is at least similarto the second game context.

In some embodiments, the game strategy system 108 may first receive,from the client device 102-2, third data regarding the second gamecontext of a second video game session between the third game player andthe fourth game player. Thereafter, the game strategy system 108 mayidentify the set of one or more suggested game strategies from the gamestrategy dataset, on behalf of the client device 102-2, based on thethird data that provides the second game context. The game strategysystem 108 may provide the client device 102-2 with fourth dataregarding the set of one or more suggested game strategies.Subsequently, the client device 102-2 may use the fourth data to providethe set of one or more suggested game strategies for use by the thirdgame player in the second game context.

The computer player module 114 may be one configured to implement one ormore computer game players at the client device 102-1 during a videogame session involving the video game 110. Depending on the embodiment,the computer player module 114 may implement the one or more computergame players according to video game settings (e.g., video game playerpreferences), which may determine, for instance, the skill level of thecomputer game player (e.g., novice or expert), whether the computer gameplayer can utilize suggested game strategies provided by the gamestrategy client module 112, and other behavior by the one or morecomputer game players implemented by the computer player module 114. Forsome embodiments, the computer player module 114 implements the one ormore computer game players such that they mimic the behavior of a humangame player having a particular skill level. Computer game playersimplemented by the computer player module 114 may behave according torules and other pre-programmed settings. By using the suggest gamestrategies provided by the game strategy client module 112, the one ormore computer game players implemented by the computer player module 114may better mimic behavior of a human player, and do so according tobehavior of the human players in an online video game community.

The online video game network 106 may represent an online game serviceto which the one or more client devices 102 communicatively couplesbefore, after, or during a video game session involving the video game110. For some embodiments, the online video game network 106 is one thatfacilitates the collection of game strategies used in by human gameplayers at the one or more client devices 102. In some embodiments, theonline video game network 106 facilitates a human game player at one ofthe client devices 102 to play the video game 110 against another of theclient devices 102. Depending on the embodiment, the online video gamenetwork 106 may be one implemented or maintained by the publisher,developer, or seller of the video game 110. Additionally, depending onthe embodiment, the online video game network 106 may execute the videogame 110 on behalf of one or more human video game players at the one ormore client devices 102. Further, the online video game network 106 mayimplement one or more computer game players for a video game sessioninvolving one or more of the client devices 102.

The game strategy system 108 may be configured to facilitate collectionof data regarding video game strategies used during one or more videogame sessions involving two or more human game players, or one or morehuman game players against one or more computer game players. The gamestrategy system 108 may analyze collected data regarding video gamestrategies, may identify a set of one or more relevant video gamestrategies for use as suggest video game strategies, and may provide theset of one or more relevant video game strategies to one or more of theclient devices 102 for use by computer or human game players at the oneor more client devices 102.

FIG. 2 is a block diagram of the game strategy client module 112 inaccordance with some embodiments of the invention. As shown in FIG. 2,the game strategy client module 112 can comprise a game contextmonitoring module 200, a game strategy monitoring module 202, a gamestrategy upload module 204, a game strategy download module 206, a gamestrategy suggestion module 208, a client-side communication module 210,and a client-side game strategy datastore 212. Those skilled in the artwill appreciate that components of the game strategy client module 112,and functionality of those components, may differ between variousembodiments.

The game context monitoring module 200 may be configured to monitor orotherwise determine a game context of a video game session involving avideo game (e.g., the video game 110) executing at a client device, suchas client device 102-1. The game context monitoring module 200 may beconfigured to provide data regarding the game context, which may beprovided with game strategy usage data that is reported to a gamestrategy system (e.g., the game strategy system 108) by a client device(e.g., the client device 102-1), or which may be utilized whenidentifying a set of one or more suggested game strategies to beprovided to one or more video game players at the client device. Thegame context monitoring module 200 may determine the game context at thetime a particular game strategy is selected and utilized by a video gameplayer at the client device (e.g., the client device 102-1).

The game strategy monitoring module 202 may be configured to monitor orotherwise determine which game strategies are selected and used, by oneor more video game players at a client device (e.g., the client device102-1), in a game context of a video game session involving a video game(e.g., the video game 110) executing at the client device. The gamestrategy monitoring module 202 may be configured to provide dataregarding the game strategies used to a game strategy system (e.g., thegame strategy system 108), which may collect in a game strategy dataset.The data regarding the game strategies may further include results(e.g., in-game results) achieved by use of the game strategies, by whichthe game strategy system may determine the effectiveness of the gamestrategies.

The game strategy upload module 204 may be configured to upload, orotherwise send, to a game strategy system (e.g., the game strategysystem 108) data regarding the game strategies used, as provided by thegame strategy monitoring module 202. As noted above, the data mayinclude results achieved by use of the game strategies. The gamestrategy upload module 204 may also be configured to configured toupload, or otherwise send, to the game strategy system data regardingthe game contexts associated with the usage of those game strategies, asprovide by the game context monitoring module 200.

The game strategy download module 206 may be configured to download aset of one or more game strategies provided by a game strategy system(e.g., the game strategy system 108). As noted herein, the game strategysystem may provide the game strategy download module 206 with a set ofone or more relevant game strategies, from which a client device (e.g.,the client device 102-1) may identify a set of one or more suggestedgame strategies for a video game player, or may provide the gamestrategy download module 206 with a set of one or more suggested gamestrategies identified by the game strategy system for the client device.Depending on the embodiment, the game strategy download module 206 maybe responsible for requesting a set of one or more game strategies fromthe game strategy system, and may do so at any time before, at beggingof, or during a video game session.

The game strategy suggestion module 208 may be configured to provide avideo game player at a client device (e.g., the client device 102-1)with a set of one or more suggested game strategies. Depending on theembodiment, the game strategy suggestion module 208 may be responsiblefor identifying the set of one or more suggested game from a set ofrelevant game strategies provided to the client device by the gamestrategy system, and may do so based on a current game context providedby the game context monitoring module 200. In some embodiments, the gamestrategy suggestion module 208 may rely on the game strategy system toidentify the set of suggested game strategies on behalf of the clientdevice. In some such embodiments, the game strategy system identifiesthe set of suggested game strategies based on game context data the gamestrategy client module 112 passes to the game strategy system (e.g., asprovided by the game context monitoring module 200).

The client-side communication module 210 may be configured to facilitatecommunication of data between the game strategy client module 112 and agame strategy system (e.g., the game strategy system 108). In someembodiments, the client-side communication module 210 may directlycommunicate data with the game strategy system, may communicate data byway of an online video game network, or may communicate data by somecombination both. In doing so, the client-side communication module 210may utilize one or more a network connections with the game strategysystem or the online video game network to communicate the data.

The client-side game strategy datastore 212 may be configured tofacilitate storage and future retrieval of data regarding one or moregame strategies at the game strategy client module 112. Depending on theembodiment, the data stored by the client-side game strategy datastore212 can include data regarding one or more game strategies utilized by avideo game player at a client device (e.g., the client device 102-1),data regard game contexts associated with usage game strategies utilizedby a video game player at the client device, data regarding one or morerelevant game strategies provided by the game strategy system (fromwhich the client device can identify a set of one or more suggested gamestrategies), or data regarding one or more suggested game strategiesprovided to the client device by the game strategy system for a givengame context. The client-side game strategy datastore 212 may furtherinclude data regarding settings, game player preferences, or otherinformation that can affect the behavior or operation of the gamestrategy client module 112.

FIG. 3 is a block diagram of the game strategy system 108 in accordancewith some embodiments of the invention. As shown in FIG. 3, the gamestrategy system 108 can comprise a game strategy aggregation module 300,a game strategy management module 302, a game strategy analysis module304, a game strategy service module 306, a system-side communicationmodule 308, and a system-side game strategy datastore 310. Those skilledin the art will appreciate that components of the game strategy system108, and functionality of those components, may differ between variousembodiments.

The game strategy aggregation module 300 may be configured to facilitatecollection of data regarding game strategies from one or more clientdevices (e.g., the client devices). For some embodiments, as clientdevices involved in video game sessions provide the game strategyaggregation module 300 with data regarding usage of game strategies bythe respective video game players they support. As described herein,such data may be accompanied by data regarding game contexts in whichthose game strategies were utilized, and data regarding results achievedby usage of those game strategies. Depending on the embodiment, the gamestrategy aggregation module 300 may collect data regarding game strategyand the like on during the video game session (e.g., at or nearreal-time or on a periodic basis), or at sometime after the video gamesession has concluded.

The game strategy management module 302 may be configured to manage dataregarding game strategies, which may include the storage, search, orretrieval of such data. As the game strategy aggregation module 300collects data from the client devices, the game strategy managementmodule 302 may utilize the system-side game strategy datastore 310 forstorage of such data. For some embodiments, the game strategy managementmodule 302 can index the game strategy data maintained by the gamestrategy system 108 according to a number of different indices,including associated game context information and game strategy resultinformation. The game strategy management module 302 can assist the gamestrategy service module 306 in servicing requests from the clientdevices for sets of one or more game strategies, assist the gamestrategy analysis module 304 in analyzing data regarding data collectedby the game strategy aggregation module 300 regarding game strategies,and can otherwise facilitate identification of a set of one or morerelevant or suggested game strategies for one or more client devices.

The game strategy analysis module 304 may be configured to analyze datacollected regarding game strategies (hereafter also referred to as“sampled game strategies”) from one or more client devices (e.g., theclient device 102-1), and may be further configured to identify a set ofone or more game strategies to provide to a client device for suggestionto a video game player. Depending on the embodiment, the game strategyanalysis module 304 may utilize statistics, data mining, telemetry, orthe like to identify a set of one or more relevant game strategies(e.g., best game strategies for suggestion) from which one or moreclient devices 102 can provide a set of one or more suggested gamestrategies (e.g., based on a current game context) to one or more gameplayers at the one or more client devices 102. The analysis data thatresults from the game strategy analysis module 304 may be stored in thesystem-side game strategy datastore 310 for storage of such data, andmay be utilized by the game strategy analysis module 304 in identifyinga set of one or more relevant or suggested game strategies to providethe client devices. The game strategy analysis module 304 may utilize aset of game strategy criteria, in view of the analysis data, to identifythe set of one or more relevant or suggested game strategies. The set ofgame strategy criteria used may be determined based on or definedaccording to the algorithm utilized by the game strategy analysis module304 analyze and identify the set of one or more relevant or suggestedgame strategies.

For some embodiments, the game strategy analysis module 304 performs analgorithm that analyzes sampled game strategies (e.g., saved in a gamestrategy dataset) by parsing the sampled game strategies to identify agame strategy type, an offense or defense personnel group (e.g., specialteams), or a formation name associated with one or more of the sampledgame strategies. For instance, with respect to a football video game,the game strategy type identified for the sampled game strategies mayinclude an run, playcall, pass playcall, offense playcall, defenseplaycall, clock management playcall, special teams playcall (e.g., kickoff, punt, field goal), on-side kick playcall, and fake kick playcall.The resulting parsed data can be used in subsequent analysis stepsperformed by the algorithm.

In some embodiments, the algorithm for analyzing sampled game strategiescomprises generating a set of analysis results (e.g., average results)for each of the sampled game strategies (e.g., set of averages yardsgained for each offensive or defensive playcall). With respect todefensive game strategies, the algorithm may comprise identifying a setof defensive game strategies used against each sampled offensive gamestrategy. The algorithm may further comprise determining resultsachieved against the identified defensive set of game strategies,determining the number of times the identified set of defensive gamestrategies has been utilized (e.g., in the online gaming community), ordetermining the number of times the results from the identified set ofdefensive game strategies exceeds the effectiveness of the sampledoffensive game strategy. For instance, with respect to a football videogame, the algorithm may determine results achieved against theidentified set of defensive game strategies by determining the totalnumber of yards gained against the identified defensive game strategies,average yards gained per play, or the offensive effectiveness percentage(e.g., calculated based on total effective count/total sample size).With respect to offensive game strategies, the algorithm for analyzingsampled game may determine effectiveness for each sampled offensive gamestrategy based on one or more of the game context, the type of offensivegame strategy (e.g., pass, run, special teams playcall), and the resultsof the offensive game strategy (e.g., actual results observed duringgameplay and the analysis of those results).

For some embodiments, the algorithm determines effectiveness bydetermining whether use of a given game strategy or given type of gamestrategy achieves a certain result in the video game. For instance, withrespect to a football video game, the algorithm for analyzing sampledgame strategies may determine effectiveness for each sampled offensivegame strategy by: for goal line or red zone pass playcall, determiningwhether the playcall results in a 1^(st) down or a gain of at least 8yards; for goal line or red zone non-pass playcall, determining whetherthe playcall results in a 1^(st) down or a gain of at least 4 yards; fora 1^(st) down or 2^(nd) down pass playcall, determining whether theplaycall results in a 1^(st) down or a gain of at least 8 yards; for a1^(st) down or 2^(nd) down non-pass playcall, determining whether theplaycall results in a 1^(st) down or a gain of at least 4 yards; or fora 3^(rd) down or 4^(th) down playcall, determine whether the playcallresults in a 1^(st) down. For some embodiments, the algorithm foranalyzing sampled game strategies comprises aggregating individual gamecontext-based results for a given game strategy and using thoseaggregated results to calculate an average result achieved for the givengame strategy.

In some embodiments, a set of game strategies ordered according to theireffectiveness serves as the set of one or more relevant game strategiesfrom which future video game sessions can provide one or more suggestedgame strategies to human or computer players. In some embodiments, thealgorithm for analyzing sampled game strategies comprises filtering orignoring those game strategies having certain results or othercharacteristics (e.g., used by top ranked players), thereby providing aset of one or more relevant game strategies that meet a set of specificcriteria. Additionally, for some embodiments, the algorithm generates aset of the most effective defensive game strategies (e.g., defensiveplaycalls) against a specific offensive game strategy (e.g., offensiveplaycalls), a set of the most effective offensive game strategiesagainst a defensive game strategy, or both.

For instance, with respect to a football video game, the algorithm foranalyzing sampled game strategies may determine a set of most effectivedefensive playcalls against a given offensive playcall by doing one ormore of the following: ignoring play results for offensive playcallrelating to fake kicks or clock management (e.g., QB kneel, or QBspike); ignoring play results for defensive playcalls relating to a goalline defensive formation or special teams (e.g., kicks, such as puntreturns or field goal block); for each offensive playcall, sort a set ofdefensive playcalls by a total sample size and ignore or discard thosehaving lowest 25% of results with the least number of total samples; andfor each offensive playcall, sort a set of defensive playcalls byoffense effective percentage (e.g., ascending: lower to higher) andaverage yards gained (e.g., ascending: lower to higher) to determine themost effective defensive playcalls against each the offensive playcall.

In another example involving a football video game, the algorithm foranalyzing sampled game strategies may determine a set of most effectivedefensive playcalls for a specified defensive formation (e.g., Nickelformation) by doing one or more of the following: aggregate individualgame context-based results for a given game strategy and use thoseaggregated results to calculate an average result achieved for the givengame strategy; ignore playcall results for offensive playcallsassociated with special teams (e.g., kicks, such as punt or field goal),fake kicks, or clock management (e.g., QB kneel or QB spike); and foreach offensive playcall, create or find a result summary for eachdefensive playcall used against the offensive playcall.

In another example involving a football video game, the algorithm foranalyzing sampled game strategies may determine a set of most effectivedefensive playcalls for a specified offensive personnel group (e.g.1RB-1TE-3WR) by doing one or more of the following: aggregate individualgame context-based results for a given game strategy and use thoseaggregated results to calculate an average result achieved for the givengame strategy; ignore playcall results for offensive playcallsassociated with special teams (e.g., kicks, such as punt or field goal),fake kicks, or clock management (e.g., QB kneel or QB spike); ignoreplaycall results for defensive playcalls associated with special teams(e.g., kicks, such as punt or field goal); for each offensive playcall,create or find a result summary for the offensive personnel groupassociated with the offensive playcall; and for each defensive playcallresult, add the total result counts to a summary record for theoffensive personnel group against each individual defensive playcall.The foregoing can produce the average results for all the individualdefensive playcalls against a given offensive personnel group. Thealgorithm can continue by doing one or more of the following: for eachoffensive personnel group, sort the list of defensive playcalls by totalsample size; discard the lower 25% of results with the least number oftotal samples; and for each offensive personnel group, sort the list ofdefensive playcalls by offense effective percentage (e.g., ascending:lower to higher) and average yards gained (e.g., ascending: lower tohigher) to determine the most effective defensive playcalls against theoffensive personnel group.

In another example involving a football video game, the algorithm foranalyzing sampled game strategies may determine a set of most effectivedefensive playcalls for a specified game situation (e.g., 3rd and Long)by doing one or more of the following: determine playcall resultaverages for each individual game situation; ignore playcall results foroffensive playcalls associated with special teams (e.g., kicks, such aspunt or field goal), fake kicks, or clock management (e.g., QB kneel orQB spike); process a separate summary for each game situation; for eachgame situation, create or find a result summary for the game situation;for each offensive playcall, create a result summary for the offensiveplaycall results; and for each defensive playcall result, add the totalresult counts to a summary record in the game situation for theoffensive playcall against all defensive playcalls. The foregoing canproduce the average results for all the individual offensive playcallsin each game situation. The algorithm can continue by doing one or moreof the following: for each game situation, sort the list of offensiveplaycalls by total sample size; discard the lower 25% of results withthe least number of total samples; and for each game situation, sort thelist of offensive playcalls by offense effective percentage (e.g.,descending: higher to lower) and average yards gained (e.g., descending:higher to lower) to determine the most effective offensive playcalls.

Those skilled in the art will appreciate that the operations andalgorithms described above are merely examples that can be utilized witha football video game. Those skilled in the art will further appreciatethat for some embodiments, the operations above can be adapted for othergame strategies and other video games.

The game strategy service module 306 may be configured to provide a setof game strategies to one or more client devices (e.g., the clientdevice 102-1) for use by one or more human or computer game playerinvolved at video game session at the client devices. For someembodiments, the game strategy service module 306 receives from theclient device a request for one or more game strategies. Depending onthe embodiment, the request from the client device may provideinformation regarding a game context of a video game session in whichthe client device is involved (e.g., the title of the video game 110,the type of video game players involved, specific information regardingthe one or more video game players to be provided with the suggestedgame strategies, etc.), and the game strategy service module 306 mayutilize such information to identify the set of one or more relevantgame strategies to provided to the client device, or to identify a setof one or more suggested game strategies to be provided to the clientdevice.

The system-side communication module 308 may be configured to facilitatecommunication of data between the game strategy system 108 and a gamestrategy client module (e.g., the game strategy client module 112). Insome embodiments, the system-side communication module 308 may directlycommunicate data with the game strategy client module, may communicatedata by way of an online video game network, or may communicate data bysome combination both. In doing so, the system-side communication module308 may utilize one or more a network connections with the game strategyclient module or the online video game network to communicate the data.

The system-side game strategy datastore 310 may be configured toconfigured to facilitate storage and future retrieval of data regardingone or more game strategies at the game strategy system 108. Dependingon the embodiment, the data stored by the system-side game strategydatastore 310 may store a game strategy dataset from which the gamestrategy system 108 can provide a set of one or more relevant gamestrategies or a set of one or more suggested game strategies. Thesystem-side game strategy datastore 310 may include data regarding oneor more game strategies utilized by a video game player at a clientdevice (e.g., the client device 102-1), data regard game contextsassociated with usage game strategies utilized by a video game player atthe client device, data regarding one or more relevant game strategiesthat can be provided to the client device (from which the client devicecan identify a set of one or more suggested game strategies), or dataregarding one or more suggested game strategies provided to the clientdevice by the game strategy system for a given game context. Thesystem-side game strategy datastore 310 may further include dataregarding settings, game player preferences, or other information thatcan affect the behavior or operation of the game strategy system 108.

FIG. 4 is a flowchart illustrating an example method 400 for gamestrategies in accordance with some embodiments of the invention. Asdescribed below, for some embodiments, the method 400 may performoperations in connection the game strategy system 108. The method 400may begin at step 402, with the game strategy aggregation module 300 (ofthe game strategy system 108) receiving from a first client device(e.g., the client device 102-1) first data regarding a first gamestrategy used in a first game context of a first game session involvinga video game (e.g., a specific football video game). The first data maycomprise information regarding the first game strategy and one or moreother game strategies. The first game strategy may be one used by one ormore human players at the first client device in the first game contextduring the first game session. Depending on the embodiment, the firstdata received may be in the form of a file, and the first data mayinclude a structured format (e.g., XML or JSON). Additionally, dependingon the embodiment, the system-side communication module 308 mayfacilitate receipt of the first data from the first client device.

At step 404, the game strategy management module 302 may update a gamestrategy dataset based on the first data. In some embodiments, the firstdata may at least include an identity of the first game strategy,information regarding a first game context in which the first gamestrategy is used (e.g., for a video game session involving a footballgame, parameters such as current quarter, current score, time left inquarter, identity of teams, etc.), and information regarding one or moreresults achieved by utilizing the first game strategy in the first gamecontext (e.g., for a video game session involving a football game,increase in score, yards gained, etc.). In some embodiments, thesystem-side game strategy datastore 310 comprises the game strategydataset, and the system-side game strategy datastore 310 may beimplemented using a database or some other means of computer readabledata storage. An update to the game strategy dataset may comprisestoring, in the game strategy dataset, information regarding the firstgame strategy in association with the first game context in which it wasused. In the event that the game strategy dataset already includesinformation regarding the first game strategy exists in association withthe first game context, such information may be updated based on thefirst data.

At step 406, the game strategy analysis module 304 may analyze one ormore game strategies stored in the game strategy dataset and, at step408, the game strategy analysis module 304 may identify a set of one ormore relevant game strategies based on a set of criteria. As describedherein, the game strategy analysis module 304 may be configured toanalyze game strategies sampled from one or more client devices (e.g.,the client device 102-1), and may be further configured to identify aset of one or more game strategies to provide to a client device forsuggestion to a video game player. The game strategy analysis module 304may utilize a set of game strategy criteria, in view of the analysisdata, to identify the set of one or more relevant or suggested gamestrategies. Additionally, the set of game strategy criteria used may bedetermined based on or defined according to the algorithm utilized bythe game strategy analysis module 304 analyze and identify the set ofone or more relevant or suggested game strategies.

At step 410, the game strategy service module 306 may receive, from asecond client device (e.g., the client device 102-2), a request for aset of game strategies that the second client device can use in a secondvideo game session in which the second client device is involved. Forsome embodiments, the second video game session involves the same videogame as the first video game session. Depending on the embodiment, therequest from the second client device may provide information regardingthe video game (e.g., title and version) or, more specifically, the athe second video game session (e.g., information regarding current gamemode or a second game context) so that the game strategy service module306 provides the second client device with game strategies appropriateto the second video game session. Depending on the embodiment, thesystem-side communication module 308 may facilitate receipt of therequest from the second client device.

At operation 412, the game strategy service module 306 may provide thesecond client device (e.g., the client device 102-2) with second dataregarding a set of one or more relevant game strategies, which may havebeen identified during step 410. Depending on the embodiment, thesystem-side communication module 308 may enable the game strategy system108 to send the second data to the second client device.

Though the operations of method 400 may be depicted and described abovein a certain order, those skilled in the art will appreciate that theorder in which the operations are performed may vary betweenembodiments, including performing certain operations in parallel.Additionally, those skilled in the art will appreciate that thecomponents described above with respect to the method 400 of theflowchart are merely examples of components that may be used with themethod, and for some embodiments other components may also be utilizedin some embodiments.

FIG. 5 is a flowchart illustrating of an example method 500 for gamestrategies in accordance with some embodiments of the invention. Asdescribed below, for some embodiments, the method 500 may performoperations in connection the game strategy client module 112. The method500 may begin at step 502 with the game strategy download module 206sending a request, to a server (e.g., the game strategy system 108), forone or more game strategies. In the request, the game strategy downloadmodule 206 may include game context information that enables the gamestrategy system 108 to identify a set of one or more relevant gamestrategies (or a set of one or more suggested game strategies) that canbe provided to the client device in response to the request.

At step 504, the game strategy download module 206 may receive from theserver (e.g., the game strategy system 108) first data regarding a setof one or more relevant game strategies for a video game. Depending onthe embodiment, the first data may be received in response to therequest sent at step 502, or the first data may be pushed periodicallyor aperiodically to the game strategy download module 206 from theserver (e.g., when the game strategy dataset at the server is updated).At step 506, the game strategy suggestion module 208 may identify a setof one or more suggested game strategies in the set of one or morerelevant game strategies based on the first data and a current gamecontext of a video game session. In some embodiments, the video gamesession involves the video game relating to the set of one or morerelevant game strategies received at step 504. At step 508, the gamestrategy suggestion module 208 may provide the set of one or moresuggested game strategies for use by a game player in the current gamecontext of the video game session.

Though the operations of method 500 may be depicted and described abovein a certain order, those skilled in the art will appreciate that theorder in which the operations are performed may vary betweenembodiments, including performing certain operations in parallel.Additionally, those skilled in the art will appreciate that thecomponents described above with respect to the method 500 of theflowchart are merely examples of components that may be used with themethod, and for some embodiments other components may also be utilizedin some embodiments.

FIG. 6 is a screenshot 600 of an example user interface for accessingplaycalls in a video game in accordance with some embodiments of thepresent invention. The screenshot 600 may be one presented to a humangame player during a video game session involving a football video game.The screenshot 600 includes a football game situation bar 602, which candisplay latest situation in the football game being played. Thescreenshot 600 further includes a menu 604 for accessing footballplaycalls that a human game player can call in gameplay during a videogame session. For some embodiments, the menu 604 may appear betweendifferent footballs plays during the video game session. As shown inFIG. 6, the menu 604 can permit a user to filter football playcallsaccording to game situation 606, formation 608, concept 610, play type612, personnel 614, and user preferences 616 (e.g., My Plays).

For some embodiments, the football playcalls provided through the menu604 includes one or more football playcalls provided by the gamestrategy system 108, which may be provided through the game strategyclient module 112 (e.g., of client device 102-1). As described herein,the set of football playcalls provided to the menu 604 by the gamestrategy system 108 may be those used in gameplay between two or moregame players during previous video game sessions (e.g., over an onlinevideo game network). The set of football playcalls provided by the gamestrategy system 108 may be those relevant to the current video gamesession, and further may be those that provided favorable results inprevious video game sessions (e.g., during video game sessions humanplayer versus human player or human player versus computer player). Forinstance, the football playcalls provided by the game strategy system108 may be those crowd-sourced from an online video game network, wherefootball playcalls made during video game sessions involving gameplayers from the online video game network (e.g., online gamecommunity). From such an online video game network, the game strategysystem 108 may provide the most successful playcalls or playcalls withthe best community results (e.g., in terms of average yards gained foran offensive football playcall or average yards prevented for adefensive football playcall). Based on the set of one or more relevantfootball playcalls provided by the game strategy system 108 to the gamestrategy client module 112 (e.g., of client device 102-1), the gamestrategy client module 112 may filter or otherwise identify suggestedplaycalls from the set of one or more relevant playcalls, and may dobased on the current game context (e.g., current game situation, playertypes involved—human or computer, player skill levels, etc.).

Though the example user interface of FIG. 6 relates to a football videogame, those skilled in the art will appreciate that for variousembodiments, user interface for accessing playcalls, or other types ofgame strategies, may differ based on the type of video game or based onthe video game title.

FIG. 7 is a screenshot 700 of an example user interface for providingsuggested playcalls in a video game in accordance with some embodimentsof the present invention. The screenshot 700 may be one presented to ahuman game player during a video game session involving a football videogame. The screenshot 700 includes a football game situation bar 702,which can display latest situation in the football game being played.The screenshot 700 further includes a menu 704 configured to provide aset of one or more suggested playcalls based on at least a current gamecontext (e.g., current situation in the football). As shown in FIG. 7,the menu 704 can include a set of playcalls 708 suggested based on usageby one or more expert level video game players (e.g., video game playershaving a high player rank), and further suggested based on the resultsof such playcalls (e.g., effectiveness of such playcalls). The menu 704can include a set of playcalls 710 suggested based on usage by acommunity (e.g., online community) of video game players, and furthersuggested based on the results of such playcalls (e.g., effectiveness ofsuch playcalls). The menu 704 can include a set of playcalls 712suggested based on the human game players own usage of the suggestedplaycalls, and further suggested based on the results of such playcalls(e.g., effectiveness of such playcalls). Those skilled in the art willappreciate that for some embodiments, a set of suggested game strategiescan be provided to a human player in a manner different from what isillustrated in FIG. 7. The manner in which a set of suggested gamestrategies are identified or provided may differ between different typesof video games or different video game titles.

FIG. 8 is a block diagram of a computer system 800. The computer system800 comprises a processor 802, a memory system 804, a storage system806, a communication network interface 808, an I/O interface 810, and adisplay interface 812 communicatively coupled to a communication channel814. The processor 802 is configured to execute executable instructions(e.g., code). In some embodiments, the processor 802 comprises circuitryand/or any processor capable of processing the executable instructions.

The memory system 804 is any memory configured to store data. Someexamples of the memory system 804 include storage devices, such as RAM,ROM, RAM cache, etc. In various embodiments, data is stored within thememory system 804. The data within the memory system 804 may be clearedor ultimately transferred to the storage system 806.

The storage system 806 is any storage configured to retrieve and storedata. Some examples of the storage system 806 are flash drives, harddrives, optical drives, and/or magnetic tape. In some embodiments, thecomputer system 800 includes a memory system 804 in the form of RAM anda storage system 806 in the form of flash. Both the memory system 804and the storage system 806 comprise computer readable media that storesinstructions that are executable by the processor 802.

The communication network interface (com. network interface) 808 can becoupled to a network (e.g., computer network 116) via the communicationchannel 816. The communication network interface 808 may supportcommunication over an Ethernet connection, a serial connection, aparallel connection, or an ATA connection, for example. Thecommunication network interface 808 may also support wirelesscommunication (e.g., 802.11 a/b/g/n, WiMax). It will be apparent tothose skilled in the art that the communication network interface 808can support many wired and wireless standards.

The input/output (I/O) interface 810 is any device that receives inputfrom the user and outputs data to the user. The display interface 812 isany device that is configured to output graphics and data to a display.In one example, the display interface 812 is a graphics adapter. It willbe appreciated that not all computer systems 800 comprise either the I/Ointerface 810 or the display interface 812.

It will be appreciated by those skilled in the art that the hardwareelements of the computer system 800 are not limited to those depicted. Acomputer system 800 may comprise more or less hardware elements thandepicted. Further, hardware elements may share functionality and stillbe within various embodiments described herein. In one example, encodingand/or decoding may be performed by the processor 802 and/or aco-processor located on a GPU (e.g., Nvidia). The above-describedfunctions and components may comprise instructions stored on a storagemedium such as a computer readable medium. The instructions can beretrieved and executed by a processor. Some examples of instructions aresoftware, program code, and firmware. Some examples of storage mediumare memory devices, tape, disks, integrated circuits, and servers. Theinstructions are operational when executed by the processor to directthe processor to operate in accord with embodiments of the presentinvention. Those skilled in the art are familiar with instructions,processor(s), and storage medium.

It will be appreciated that a “module” as referred to herein maycomprise software, hardware, firmware, and/or circuitry. In one example,one or more software programs comprising instructions capable of beingexecutable by a processor may perform one or more of the functions ofthe engines described herein. In another example, circuitry may performthe same or similar functions. Alternative embodiments may comprisemore, less, or functionally equivalent engines and still be within thescope of present embodiments.

It will also be understood that the term “set” as used herein may referto any collection of elements, whether finite or infinite. The termsubset may refer to any collection of elements, wherein the elements aretaken from a parent set; a subset may be the entire parent set. The termproper subset refers to a subset containing fewer elements than theparent set. The term sequence may refer to an ordered set or subset. Theterms less than, less than or equal to, greater than, and greater thanor equal to, may be used herein to describe the relations betweenvarious objects or members of ordered sets or sequences; these termswill be understood to refer to any appropriate ordering relationapplicable to the objects being ordered.

Those skilled in the art will appreciate that for the variousembodiments described herein, any communication of data betweenentities, such as the client device 102-1, the online video game network106, and the game strategy system 108, may entail the exchange of a datafile, which may include information in a structured format (e.g., XML orJSON).

The present invention is described above with reference to exemplaryembodiments. It will be apparent to those skilled in the art thatvarious modifications may be made and other embodiments can be usedwithout departing from the broader scope of the present invention.Therefore, these and other variations upon the exemplary embodiments areintended to be covered by the present invention.

1-20. (canceled)
 21. A computer-implemented method comprising: asimplemented by server computing system comprising at least one processorconfigured with computer-executable instructions, receiving gameplaytelemetry data from a client computing system executing a first gameplaysession of a video game application, the gameplay telemetry dataidentifying a first gameplay context of the first gameplay session;accessing a game strategy dataset, wherein the gameplay strategy datasetincludes a plurality of game strategies used in previous gameplaycontexts aggregated from a plurality of client computing system duringindividual gameplay sessions of the video game application; identifyinga subset of one or more game strategies, from the game strategy dataset,based, at least in part, on the first gameplay context of the firstgameplay session; and transmitting to the client computing system adataset comprising the subset of one or more game strategies, the clientcomputing system being configured to use the dataset to select at leastone game strategy of the subset for use in the first gameplay context ofthe first gameplay session and generate instructions to output the atleast one selected game strategy within a video game user interfaceduring runtime of the first gameplay session.
 22. The method of claim21, wherein the first game context comprises at least one of a firstskill level of a first game player or a second skill level of a secondgame player.
 23. The method of claim 21, wherein the at least oneselected game strategy, in the subset of one or more game strategies,have an associated game context that is at least similar to the firstgameplay context.
 24. The method of claim 21, wherein identifyingindividual game strategies for the subset of one or more game strategiesis further based, at least in part, on a result achieved during past useof an individual game strategy.
 25. The method of claim 21, whereinidentifying individual game strategies for the subset of one or moregame strategies is further based, at least in part, on an effectivenessof an individual game strategy.
 26. The method of claim 21, whereinidentifying individual game strategies for the subset of one or moregame strategies is further based, at least in part, on past use of theindividual game strategy by a set of one or more video game players. 27.The method of claim 21, wherein identifying individual game strategiesfor the subset of one or more game strategies is further based, at leastin part, on how often the individual game strategy has been used byother video game players.
 28. The method of claim 21, wherein individualgame strategies of the plurality of game strategies data further includea set of one or more game results achieved during use of the first gamestrategy within a video game session.
 29. The method of claim 21,wherein the video game is a sports video game, a role-playing game(RPG), a real-time strategy (RTS) game, a simulation, a first personshooter (FPS) game, or an adventure game.
 30. A system comprising: adata store comprising a gameplay strategy dataset including a pluralityof game strategies used in previous gameplay contexts aggregated from aplurality of client computing system during individual gameplay sessionsof the video game application; at least one processor configured withcomputer executable instructions, wherein the computer executableinstructions configure the at least one processor to: receive gameplaytelemetry data from a client computing system executing a first gameplaysession of a video game application, the gameplay telemetry dataidentifying a first gameplay context of the first gameplay session;identify a subset of one or more game strategies, from the game strategydataset, based, at least in part, on the first gameplay context of thefirst gameplay session; and transmit to the client computing system adataset comprising the subset of one or more game strategies, the clientcomputing system being configured to use the dataset to select at leastone game strategy of the subset for use in the first gameplay context ofthe first gameplay session and generate instructions to output the atleast one selected game strategy within a video game user interfaceduring runtime of the first gameplay session.
 31. The system of claim30, wherein identifying individual game strategies for the subset of oneor more game strategies is further based, at least in part, on a resultachieved during past use of an individual game strategy.
 32. The systemof claim 30, wherein identifying individual game strategies for thesubset of one or more game strategies is further based, at least inpart, on an effectiveness of an individual game strategy.
 33. The systemof claim 30, wherein identifying individual game strategies for thesubset of one or more game strategies is further based, at least inpart, on past use of the individual game strategy by a set of one ormore video game players.
 34. The system of claim 30, wherein identifyingindividual game strategies for the subset of one or more game strategiesis further based, at least in part, on how often the individual gamestrategy has been used by other video game players.
 35. The system ofclaim 30, wherein individual game strategies of the plurality of gamestrategies data further include a set of one or more game resultsachieved during use of the first game strategy within a video gamesession.
 36. A computer implemented method comprising: as implemented bya client computing system comprising a processor configured withcomputer executable instructions executing a video game application,transmit, to a server computing system, gameplay telemetry data duringruntime execution of a first gameplay session of the video gameapplication, the gameplay telemetry data identifying a first gameplaycontext of the gameplay session; receiving, from the server computingsystem, a dataset comprising a subset of one or more game strategies,the subset of one or more gameplay strategies identified by the servercomputing system based, at least in part, on the first gameplay contextof the first gameplay session; and selecting at least one game strategyof the subset for use in the first gameplay context of the firstgameplay session; generating instructions to output the selected atleast one game strategy within a video game user interface duringruntime of the first gameplay session; receiving a user selection of agame strategy of the at least one game strategy; and generatinginstructions to implement the user-selected game strategy within thevideo game session.
 37. The method of claim 36, wherein the gameplaytelemetry data identifies a current game state experienced by a firstgame player and a second game player participating in the first gameplaysession.
 38. The method of claim 37, wherein the at least one selectedgame strategy is provided to the second game player, wherein the secondgame player is a computer game player.
 39. The method of claim 38,wherein the computer game player automatically executes the at least oneselected game strategy during the first gameplay session.
 40. The methodof claim 36, wherein the first game context comprises at least one of afirst skill level of a first game player or a second skill level of asecond game player.